"""
logging 模块提供了一个灵活的事件日志系统，用于记录应用程序运行时的信息。
basicConfig 是 logging 模块中的一个函数，用于快速配置日志记录的基本设置。它通常用于简单的日志记录需求，而不需要复杂的配置。

- logging 模块是线程安全的，可以在多线程环境中安全使用
"""
import logging
from logging.handlers import RotatingFileHandler

logger = logging.getLogger(__name__)

# 创建两个处理器：一个输出到控制台，一个输出到文件
console_handler = logging.StreamHandler()
file_handler = logging.FileHandler('log/error.log', mode='a')

# 设置日志级别和格式
console_handler.setLevel(logging.DEBUG)
file_handler.setLevel(logging.ERROR)

rotatingFileHandler = RotatingFileHandler('log/app.log', maxBytes=2000, backupCount=5)
logger.addHandler(rotatingFileHandler)

# 配置基本的日志记录,日志记录的最低级别设置为 DEBUG,并将日志输出到文件中,datefmt 自定义日期格式
logging.basicConfig(level=logging.DEBUG,
                    format='%(asctime)s - %(levelname)s - %(message)s',
                    datefmt='%Y-%m-%d %H:%M:%S',
                    handlers=[console_handler, file_handler])

# 记录不同级别的日志
logger.debug("This2 is a debug message")
logger.info("This is an info message")
logger.warning("This is a warning message")
logger.error("This is an error message")
logger.critical("This is a critical message")

for i in range(10):
    logger.info("hello word")
